package cifrasong.cifra.negocio;

import android.content.Context;

import cifrasong.cifra.dominio.Cifra;
import cifrasong.cifra.persistencia.CifraDAO;

/**
 * Created by Igor on 24/11/2014.
 */

public class CifraService {

    private CifraDAO CifraDAO = null;

    public CifraService(Context context){
        this.CifraDAO = CifraDAO.getInstance();
        this.CifraDAO.setContextUp(context);
    }

    public static String montaLink(String sufixo) {
        StringBuilder retorno = new StringBuilder("http://www.cifraclub.com.br/");

        char espaco[] = { ' ' };

        for (int i = 0; i < sufixo.length(); i++) {
            if (sufixo.charAt(i) == espaco[0]) {
                retorno.append("-");
            } else {
                retorno.append(sufixo.charAt(i));
            }
        }
        return retorno.toString();
    }

    public void adicionarCifra(Cifra cifra){
        if (!CifraDAO.existeCifra(cifra)){
            CifraDAO.adicionarCifra(cifra);
        }
    }

    public void deletarTodasCifras (){
        CifraDAO.deletarTodasCifras();
    }

    public void deletarCifra(){
        CifraDAO.deleteCifra();
    }

    public boolean favoritarCifra(Cifra cifra) throws Exception{
        StringBuilder message = new StringBuilder();
        boolean cifraFavoritada = false;
        if (CifraDAO.favoritarCifra(cifra)){
            cifraFavoritada = true;
        }else{
            message.append("A cifra não pode ser favoritada por que ja é favorita.");
            throw new Exception(message.toString());
        }
        return cifraFavoritada;
    }

    public boolean desfavoritarCifra(Cifra cifra)throws Exception{
        StringBuilder message = new StringBuilder();
        boolean cifraDesFavoritada = false;
        if (CifraDAO.desfavoritarCifra(cifra)){
            cifraDesFavoritada = true;
        }else{
            message.append("Desculpe ocorreu um erro :/");
            throw new Exception(message.toString());
        }
        return cifraDesFavoritada;
    }
}
